Addressing Ubiquitous Software Complexity with Mobile Containers
نویسنده
چکیده
We present here an overview of the idea of applying the software containers model to mobile applications using generative programing techniques. We also present an evaluation prototype called MobCon. A software container is a wrapper component that offers services nearly transparently to other components that ’live’ inside it. The wrapped components contain the functional logic of the application. The services offered by the container are secondary to the logic of the application, but are nevertheless necessary to get an application running. The container services, known as technical concerns [14], include data persistence, logging etc. Components that live inside a container are usually written in a more restricted way that normal components. This restrictions are compensated by automatic usage of container services. The container itself is an abstraction of the surrounding middleware that an application uses. The container concept is made known by its original usage in enterprise application frameworks like EJB [13] and COM+ [6]. A container offers services that are usually cross cutting concerns with the rest of application code. Enterprise containers are specialized for e-commerce business applications. We can reuse the container concept and specialize it to other classes of applications. We are interested to apply this concept to mobile applications. Using a container bring well-known benefits like the natural separation of programmer roles that write functional and technical code. Once the technical concerns are identified, they are coded and debugged and made of the container logic. This reduces the bugs and increases productivity. Apart of this the container idea is especially benefiting for mobile applications. The container hides the middleware related API-s from the rest of the application in a centralized way. Ideally porting a family of mobile applications to a new middleware platform would require only porting the container. This is very important considering the speed the mobile middleware [4] changes today. Even different versions of the same middleware may expose different API-s. The container abstraction can be used to address such mobile software problems in a structured way. There are several reasons, however, why the enterprise container idea cannot be directly adopted for mobile applications. First, since we are addressing a new domain of application we need to find and parameterize the technical concerns of the mobile applications to be addressed. Second, and more importantly, the design issues involved in building a container have different constrains in the enterprise as compared to mobile applications. For enterprise applications scalability is the main issue. For mobile applications the main issue is performance of the container itself: Every time we introduce a new abstraction, we introduce new layers. Having many layers of abstractions is however unacceptable for mobile applications that run on resource limited devices. Last but not least, current enterprise container technology has several drawbacks [16], which are also unacceptable for the domain of mobile applications, including the inability of such technology to be tailored to application specific needs, its complexity due to lack of tight language integration, as well the implied dependency from a particular component middleware platform, a serious limitation in the mobile domain, where middleware changes rapidly. Generative techniques in the idea of OMGMDA [5] combined with taking into consideration the cross-cutting nature of technical concerns that a container addresses can be used to implement a mobile container framework. The current research in MDA tries to find ways how to specify such transformations so that they are done automatically. While nowadays we are still far from modeling an entire application instead of writing its code, the MDA ideas are still valid, if we try to organize the source code of an application in a platform independent way that enables automatic transformations. This way we can focus on the main functionality and introduce the technical concerns automatically later. To achieve this we need language support for MDA concepts such as marking with tags and AOP like [1] cross cutting code decoration techniques. Languages used for mobile applications are usually restricted dialects of mainstream languages. Tools that transform mobile source code may not be directly available. This means that we should use techniques that can be easily introduced to any language .
منابع مشابه
Department for Informatics University of Fribourg ( Switzerland ) Automatic Software Configuration
This dissertation addresses three fundamental problems, which have to be handled in application domains like ubiquitous computing and Web services. The three problems heterogeneity, static configuration, and dynamic configuration are not only considered to persist during the near future but to increase, as similar application domains will emerge. The heterogeneity problem is defined and example...
متن کاملFrom E-learning to Ubiquitous Learning; Theoretical Principles
Background: Because of approaches to learning in every place and at any time, ubiquitous learning with knowledge of the context and framework, and due to the development of wireless technologies and sensors, the learning process has changed. Mobile learning and ubiquitous learning as models of e-learning that refer to the acquisition of knowledge, attitudes and skills through wireless technolog...
متن کاملA Peer-to-Peer Light-Weight Component Model for Context-Aware Smart Space Applications
Mobile Peer-to-Peer (P2P) computing applications involve collections of heterogeneous and resource-limited devices (such as PDAs or embedded sensor-actuator systems), typically operated in ad-hoc completely decentralized networks and without requiring dedicated infrastructure support. Short-range wireless communication technologies together with P2P networking capabilities on mobile devices are...
متن کاملMIC: An Agent Formal Environment
Ubiquitous systems can be considered as good challenges and case studies for the reliable development of open, cooperative and mobile systems in a globally uncontrolled environment. Furthermore, the complexity of these systems could constitute a real barrier to classical engineering approaches and validate the foundations of agent based computing. In this paper, we have abstracted a composable ...
متن کاملSoftware Engineering Support for the Development of Context-aware, Adaptive Applications for Mobile and Ubiquitous Computing Environments
The main motivation for this research is the increasing popularity received by mobile and pervasive computing applications in combination with the increased complexity which is involved in the development of software systems targeting such environments. In this respect, two basic dimensions are detected: environment sensing and environment shaping. The former refers to the ability of systems to...
متن کامل